def METHOD_NAME(self, event):
    """
    Process an annotation event, taking appropriate action to the event.
    This will attempt to fulfill the request synchronously if asked, or
    fall back on a delayed celery task if not or if this fails.
    :param event: AnnotationEvent object
    """
    if event.action in ["create", "update"]:
        sync_handler, async_task = self.add_annotation_by_id, indexer.add_annotation
    elif event.action == "delete":
        sync_handler, async_task = (
            self.delete_annotation_by_id,
            indexer.delete_annotation,
        )
    else:
        return False
    try:
        return sync_handler(event.annotation_id)
    except Exception as err:  # pylint: disable=broad-except
        report_exception(err)
    # Either the synchronous method was disabled, or failed...
    return async_task.delay(event.annotation_id)