'Execute the specified update. Returns the number of rows affected by
the primary update query. The "primary update query" is the first
non-empty query that is executed. Row counts for any subsequent,
related queries are not available.'

def execute_sql(self, result_type):

    cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
    rows = ((cursor and cursor.rowcount) or 0)
    is_empty = (cursor is None)
    del cursor
    for query in self.query.get_related_updates():
        aux_rows = query.get_compiler(self.using).execute_sql(result_type)
        if is_empty:
            rows = aux_rows
            is_empty = False
    return rows
