I feel that I must be missing a part of this still. You say that you want to have three addresses for each contact and have multiple contacts with addresses added to the db. This should work just fine, each contact should be represented with a new master key value since this is the unique id for the contacts.
It will only not work if you are trying to add three addresses for a contact, then add in three more for that same contact. The MRT will not insert the new records if it uses the same master key value. I think that I'm overlooking a part of this and I'm not sure what.