'Adds \'objs\' to the collection of objects to be deleted.  If the call is
the result of a cascade, \'source\' should be the model that caused it,
and \'nullable\' should be set to True if the relation can be null.
Returns a list of all objects that were not already collected.'

def add(self, objs, source=None, nullable=False, reverse_dependency=False):

    if (not objs):
        return []
    new_objs = []
    model = objs[0].__class__
    instances = self.data.setdefault(model, set())
    for obj in objs:
        if (obj not in instances):
            new_objs.append(obj)
    instances.update(new_objs)
    if ((source is not None) and (not nullable)):
        if reverse_dependency:
            (source, model) = (model, source)
        self.dependencies.setdefault(source._meta.concrete_model, set()).add(model._meta.concrete_model)
    return new_objs
