You may be able to what you want by adding a suitable unique key.
In step 1, for instance, instead of checking whether a record already exists simply try to add all the records, and just ignore any records that fail to be added because they are rejected as duplicates. It depends whether you are happy to accept access checking for you, rather than explicitly doing it yourself.
You ought to be able to automate your process to use bulk queries to insert all the necessary records, I would have thought.