def METHOD_NAME(self, deferred=None):
    # walk through self.deferred, linking ReferenceFields as we go
    unsolved = []
    deferred = deferred if deferred else self.deferred
    for d in self.deferred:
        src_obj = d['src_obj']
        src_field = src_obj.getField(d['src_field'])
        multiValued = src_field.multiValued
        src_mutator = src_field.getMutator(src_obj)
        src_accessor = src_field.getAccessor(src_obj)
        tool = getToolByName(self.context, d['dest_catalog'])
        try:
            proxies = tool(d['dest_query'])
        except Exception:
            continue
        if len(proxies) > 0:
            obj = proxies[0].getObject()
            if multiValued:
                value = src_accessor()
                value.append(obj.UID())
            else:
                value = obj.UID()
            src_mutator(value)
        else:
            unsolved.append(d)
    self.deferred = unsolved
    return len(unsolved)