code: def save(self):
          
  
          if not self.id:
              save_method = Panoptes.client().post
              force_reload = False
          else:
              if not self.modified_attributes:
                  return
              if not self._loaded:
                  self.reload()
              save_method = Panoptes.client().put
              force_reload = True
  
          response, response_etag = save_method(
              self.url(self.id),
              json={self._api_slug: self._savable_dict(
                  modified_attributes=self.modified_attributes
              )},
              etag=self.etag
          )
  
          raw_resource_response = response[self._api_slug][0]
          self.set_raw(raw_resource_response, response_etag)
  
          if force_reload:
              self._loaded = False
  
          return response
docs: Saves the object. If the object has not been saved before (i.e. it's
          new), then a new object is created. Otherwise, any changes are
          submitted to the API.