code: async def execute(self, query, args=None):
          
          conn = self._get_db()
  
          while (await self.nextset()):
              pass
  
          if args is not None:
              query = query % self._escape_args(args, conn)
  
          await self._query(query)
          self._executed = query
          if self._echo:
              logger.info(query)
              logger.info("%r", args)
          return self._rowcount
docs: Executes the given operation
  
          Executes the given operation substituting any markers with
          the given parameters.
  
          For example, getting all rows where id is 5:
            cursor.execute("SELECT * FROM t1 WHERE id = %s", (5,))
  
          :param query: ``str`` sql statement
          :param args: ``tuple`` or ``list`` of arguments for sql query
          :returns: ``int``, number of rows that has been produced of affected