'Subclasses should call this method whenever change events occur.'

def changed(self):

    for (parent, key) in self._parents.items():
        prop = object_mapper(parent).get_property(key)
        for (value, attr_name) in zip(self.__composite_values__(), prop._attribute_keys):
            setattr(parent, attr_name, value)
