text: Title: Add support for transactions
  Body: Prisma has preview support for [interactive transactions](https://www.prisma.io/docs/concepts/components/prisma-client/transactions#interactive-transactions).
  
  The base work for this has already been done in the `wip/transactions` branch, some kinks need to be ironed out.
  
  ## Status
  
  - [x] Model-based access support
  - [ ] Protect against namespace collision
  
  ### Model-based access
  
  We could refactor the internal strategy to register and retrieve clients to use contextvars. However we should only use contextvars for transactions as otherwise it would break certain async use cases like the `python -m asyncio` REPL.