def METHOD_NAME(item, update_dict, soft=False):
    """
    Takes a Composite (item) and updates all entries with values from
    update_dict.  Updates can be soft in which case existing values are not
    overwritten.
    If item is of type string it is first converted to a Composite
    """
    item = Composite(item)
    for part in item.get_content():
        if soft:
            for key, value in update_dict.items():
                if key not in part:
                    part[key] = value
        else:
            part.update(update_dict)
    return item