Maybe I'm missing something but I don't see how it's possible for a COPY statement alone to remove existing data.
What if someone screws up the zip and instead of 10000 today, it’s only 10?
In either the solution is probably to check rough counts and error if not reasonable.