docs: def get_for_update(self, object_id, cls=None):
          """
          Retrieve an object by its object_id
          Does a select for update on the row, results in row level lock for the duration of the transaction
  
          :param: object_id: the objects id.
          :param: cls: the objects class, if None use the default class from the datamanager
          :return: the requested object or None if not found
          """
          cls = self.cls if cls is None else cls
          return self.session.query(cls).with_for_update().get(object_id)