def METHOD_NAME(self, cma):
    """
    Adds a CanonicalMapAnnotation to the managed list.
    Returns any CanonicalMapAnnotation that are no longer required,
    this may be cma or it may be a previously added annotation.
    The idea is that this can be used to de-duplicate existing OMERO
    MapAnnotations by calling add() on all MapAnnotations and deleting
    those which are returned
    If MapAnnotations are combined the parents of the unwanted
    MapAnnotations are appended to the one that is kept by the manager.
    :param cma: A CanonicalMapAnnotation
    """
    if cma.primary is None:
        self.nokey.append(cma)
        return
    try:
        current = self.mapanns[cma.primary]
        if current.ma is cma.ma:
            # Don't re-add an identical object
            return
        if self.combine == self.MA_APPEND:
            current.merge(cma)
            return cma
        if self.combine == self.MA_NEW:
            self.mapanns[cma.primary] = cma
            cma.merge_parents(current)
            return current
        if self.combine == self.MA_OLD:
            current.merge_parents(cma)
            return cma
        raise ValueError('Invalid combine policy')
    except KeyError:
        self.mapanns[cma.primary] = cma