code: def start_transaction(self, read_concern=None, write_concern=None,
                            read_preference=None):
          
          self.delegate.start_transaction(read_concern=read_concern,
                                          write_concern=write_concern,
                                          read_preference=read_preference)
          return _MotorTransactionContext(self)
docs: Start a multi-statement transaction.
  
          Takes the same arguments as
          :class:`~pymongo.client_session.TransactionOptions`.
  
          Best used in a context manager block:
  
          .. code-block:: python3
  
            # Use "await" for start_session, but not for start_transaction.
            async with await client.start_session() as s:
                async with s.start_transaction():
                    await collection.delete_one({'x': 1}, session=s)
                    await collection.insert_one({'x': 2}, session=s)