def updateDictUpdatingValue(dictA, dictB):
    """
    Update `dictA` using `dictB`. However, if key already exists in dictA, does not overwrite dictA[key] with dictB[key], as the defautl update() function does, instead does an update: dictA[key].update( dictB[key] ).
    
    Warnings
    --------
    Only works if dictA's values have an update() function, e.g. are sets!
    """
    for key, value in dictB.items():
        
        if dictA.get(key, None) is None: # does not exist in A, yet. Copy!
            dictA[key] = value
            
        else: # already exists in A. Update!
            dictA[key].update(value)
    
    return dictA