Incremental version of :meth:`update`: instead of updating all
    attributes of the entry to the specified values, this method only
    updates the specified keywords. Returns True on success, or raises
    an exception on failure.

    Note: the default implementation assumes fast and sequential access
    and reads the current version, updates the specified values, and
    calls :meth:`update`.

def modify(self, entry_id, **kw):
    '''
    Incremental version of :meth:`update`: instead of updating all
    attributes of the entry to the specified values, this method only
    updates the specified keywords. Returns True on success, or raises
    an exception on failure.

    Note: the default implementation assumes fast and sequential access
    and reads the current version, updates the specified values, and
    calls :meth:`update`.
    '''
    entry = self.read(entry_id)
    for k, v in kw.items():
      setattr(entry, k, v)
    self.update(entry)
    return True