'Add or update an item\'s annotation; a user can only have a single annotation for an item.'

def add_item_annotation(self, db_session, user, item, annotation):

    annotation_assoc = self.get_item_annotation_obj(db_session, user, item)
    if (not annotation_assoc):
        annotation_assoc_class = self._get_annotation_assoc_class(item)
        if (not annotation_assoc_class):
            return None
        annotation_assoc = annotation_assoc_class()
        item.annotations.append(annotation_assoc)
        annotation_assoc.user = user
    annotation_assoc.annotation = annotation
    return annotation_assoc
