I must say I am a bit worried about the locking in this class.  It seems that this line alone could cause a deadlock if 1 thread removes a child attribute resulting in it trying to remove the attribute from the parent and another thread adding or removing a child atttribute from that same parent.