docs: def transaction(self):
          """A context manager for executing a transaction on this Database."""
  
          conn = self.get_connection()
          tx = conn.transaction()
          try:
              yield conn
              tx.commit()
          except:
              tx.rollback()
          finally:
              conn.close()