'Execute a query
:param str query: Query to execute.
:param args: parameters used with query. (optional)
:type args: tuple, list or dict
:return: Number of affected rows
:rtype: int
If args is a list or tuple, %s can be used as a placeholder in the query.
If args is a dict, %(name)s can be used as a placeholder in the query.'

def execute(self, query, args=None):

    while self.nextset():
        pass
    query = self.mogrify(query, args)
    result = self._query(query)
    self._executed = query
    return result
