'Create a new annotation on `item` or delete the existing if annotation
is `None`.'

def annotate(self, item, annotation, user=None, flush=True):

    if (not user):
        return None
    if (annotation is None):
        self._delete_annotation(item, user, flush=flush)
        return None
    annotation_obj = item.add_item_annotation(self.session(), user, item, annotation)
    if flush:
        self.session().flush()
    return annotation_obj
