code: def update(self, **values):
          
          for column_id, v in values.items():
              col = self._columns.get(column_id)
  
              # check for nonexistant columns
              if col is None:
                  raise ValidationError(
                      "{0}.{1} has no column named: {2}".format(
                          self.__module__, self.__class__.__name__, column_id))
  
              # check for primary key update attempts
              if col.is_primary_key:
                  current_value = getattr(self, column_id)
                  if v != current_value:
                      raise ValidationError(
                          "Cannot apply update to primary key '{0}' for {1}.{2}".format(
                              column_id, self.__module__, self.__class__.__name__))
  
              setattr(self, column_id, v)
  
          # handle polymorphic models
          if self._is_polymorphic:
              if self._is_polymorphic_base:
                  raise PolymorphicModelException('cannot update polymorphic base model')
              else:
                  setattr(self, self._discriminator_column_name, self.__discriminator_value__)
  
          self.validate()
          self.__dmlquery__(self.__class__, self,
                            batch=self._batch,
                            ttl=self._ttl,
                            timestamp=self._timestamp,
                            consistency=self.__consistency__,
                            conditional=self._conditional,
                            timeout=self._timeout,
                            if_exists=self._if_exists).update()
  
          self._set_persisted()
  
          self._timestamp = None
  
          return self
docs: Performs an update on the model instance. You can pass in values to set on the model
          for updating, or you can call without values to execute an update against any modified
          fields. If no fields on the model have been modified since loading, no query will be
          performed. Model validation is performed normally. Setting a value to `None` is
          equivalent to running a CQL `DELETE` on that column.
  
          It is possible to do a blind update, that is, to update a field without having first selected the object out of the database.
          See :ref:`Blind Updates <blind_updates>`