'Mark the method as adding an entity to the collection.
Adds "add to collection" handling to the method.  The decorator
argument indicates which method argument holds the SQLAlchemy-relevant
value.  Arguments can be specified positionally (i.e. integer) or by
name::
@collection.adds(1)
def push(self, item): ...
@collection.adds(\'entity\')
def do_stuff(self, thing, entity=None): ...'

@staticmethod
def adds(arg):

    def decorator(fn):
        fn._sa_instrument_before = ('fire_append_event', arg)
        return fn
    return decorator
