parameters: (self, callable_, *args, **kwargs)
docstring: r"""Execute the given function within a transaction boundary.
  
          The function is passed this :class:`.Connection`
          as the first argument, followed by the given \*args and \**kwargs,
          e.g.::
  
              def do_something(conn, x, y):
                  conn.execute("some statement", {'x':x, 'y':y})
  
              conn.transaction(do_something, 5, 10)
  
          The operations inside the function are all invoked within the
          context of a single :class:`.Transaction`.
          Upon success, the transaction is committed.  If an
          exception is raised, the transaction is rolled back
          before propagating the exception.
  
          .. note::
  
             The :meth:`.transaction` method is superseded by
             the usage of the Python ``with:`` statement, which can
             be used with :meth:`.Connection.begin`::
  
                 with conn.begin():
                     conn.execute("some statement", {'x':5, 'y':10})
  
             As well as with :meth:`.Engine.begin`::
  
                 with engine.begin() as conn:
                     conn.execute("some statement", {'x':5, 'y':10})
  
          .. seealso::
  
              :meth:`.Engine.begin` - engine-level transactional
              context
  
              :meth:`.Engine.transaction` - engine-level version of
              :meth:`.Connection.transaction`
docstring_summary: r"""Execute the given function within a transaction boundary.
docstring_tokens: r Execute the given function within a transaction boundary .
function: def transaction(self, callable_, *args, **kwargs):
          r"""Execute the given function within a transaction boundary.
  
          The function is passed this :class:`.Connection`
          as the first argument, followed by the given \*args and \**kwargs,
          e.g.::
  
              def do_something(conn, x, y):
                  conn.execute("some statement", {'x':x, 'y':y})
  
              conn.transaction(do_something, 5, 10)
  
          The operations inside the function are all invoked within the
          context of a single :class:`.Transaction`.
          Upon success, the transaction is committed.  If an
          exception is raised, the transaction is rolled back
          before propagating the exception.
  
          .. note::
  
             The :meth:`.transaction` method is superseded by
             the usage of the Python ``with:`` statement, which can
             be used with :meth:`.Connection.begin`::
  
                 with conn.begin():
                     conn.execute("some statement", {'x':5, 'y':10})
  
             As well as with :meth:`.Engine.begin`::
  
                 with engine.begin() as conn:
                     conn.execute("some statement", {'x':5, 'y':10})
  
          .. seealso::
  
              :meth:`.Engine.begin` - engine-level transactional
              context
  
              :meth:`.Engine.transaction` - engine-level version of
              :meth:`.Connection.transaction`
  
          """
  
          kwargs["_sa_skip_warning"] = True
          trans = self.begin()
          try:
              ret = self.run_callable(callable_, *args, **kwargs)
              trans.commit()
              return ret
          except:
              with util.safe_reraise():
                  trans.rollback()
function_tokens: def transaction ( self , callable_ , * args , * * kwargs ) : kwargs [ "_sa_skip_warning" ] = True trans = self . begin ( ) try : ret = self . run_callable ( callable_ , * args , * * kwargs ) trans . commit ( ) return ret except : with util . safe_reraise ( ) : trans . rollback ( )