docs: def begin(self):
          """Start transaction
  
          Wait to get connection and returns `Transaction` object.
  
          :return: Future[Transaction]
          :rtype: Future
          """
          conn = yield self._get_conn()
          try:
              yield conn.begin()
          except:
              self._close_conn(conn)
              raise
          trx = Transaction(self, conn)
          raise Return(trx)