code: def _can_update(self):
          
          if not self._is_persisted: return False
          pks = self._primary_keys.keys()
          return all([not self._values[k].changed for k in self._primary_keys])
docs: Called by the save function to check if this should be
          persisted with update or insert
  
          :return: