'updates a row.
This is a blind update call.
All validation and cleaning needs to happen
prior to calling this.'

def update(self):

    if (self.instance is None):
        raise CQLEngineException('DML    Query    intance    attribute    is    None')
    assert (type(self.instance) == self.model)
    null_clustering_key = (False if (len(self.instance._clustering_keys) == 0) else True)
    static_changed_only = True
    statement = UpdateStatement(self.column_family_name, ttl=self._ttl, timestamp=self._timestamp, conditionals=self._conditional, if_exists=self._if_exists)
    for (name, col) in self.instance._clustering_keys.items():
        null_clustering_key = (null_clustering_key and col._val_is_null(getattr(self.instance, name, None)))
    updated_columns = set()
    for (name, col) in self.model._columns.items():
        if (null_clustering_key and (not col.static) and (not col.partition_key)):
            continue
        if (not col.is_primary_key):
            val = getattr(self.instance, name, None)
            val_mgr = self.instance._values[name]
            if (val is None):
                continue
            if ((not val_mgr.changed) and (not isinstance(col, columns.Counter))):
                continue
            static_changed_only = (static_changed_only and col.static)
            statement.add_update(col, val, previous=val_mgr.previous_value)
            updated_columns.add(col.db_field_name)
    if statement.assignments:
        for (name, col) in self.model._primary_keys.items():
            if ((null_clustering_key or static_changed_only) and (not col.partition_key)):
                continue
            statement.add_where(col, EqualsOperator(), getattr(self.instance, name))
        self._execute(statement)
    if (not null_clustering_key):
        delete_conditionals = ([condition for condition in self._conditional if (condition.field not in updated_columns)] if self._conditional else None)
        self._delete_null_columns(delete_conditionals)
