code: async def execute(self, sql, *args):
          
          _cursor = await self._execute(self._conn.execute, sql, *args)
          connection = self
          cursor = Cursor(_cursor, connection, echo=self._echo)
          return cursor
docs: Create a new Cursor object, call its execute method, and return it.
  
          See Cursor.execute for more details.This is a convenience method
          that is not part of the DB API.  Since a new Cursor is allocated
          by each call, this should not be used if more than one SQL
          statement needs to be executed.
  
          :param sql: str, formated sql statement
          :param args: tuple, arguments for construction of sql statement