'Make sure `val` is a valid annotation and assign it, deleting any existing
if `val` is None.'

def deserialize_annotation(self, item, key, val, user=None, **context):

    val = self.validate.nullable_basestring(key, val)
    return self.manager.annotate(item, val, user=user, flush=False)
