As I start using WP-Contacts intensively, I'm combining the contact lists of six people, about 600 contacts. There is lot of data cleanup and merging of duplicates that I need to do outside of WP-Contacts (e.g., in Excel). I want my modified records to replace/overwrite existing records. Yes at first I could do this all offline and then upload the finished product to an empty WP-Contacts, but I foresee wanting to do offline manipulations occasionally, interspersed with periods of collaborative use and modification online.
The useful functionality would be very much like the restore functionality you have already written. One just needs a way to translate from a row in a CSV file (as exported from WP-Contacts with all fields exported) to a line like those in insert.sql "INSERT INTO `wp_shwcp_leads` VALUES (...").
A first phase implementation might require that all fields and all records appear in the CSV, generating all the record inserts in insert.sql which then gets used in exactly the same way as a restore operation.
A phase 2 implementation would allow a partial list of modified records, and a partial number of columns (though ID column required of course). This would have to use sql UPDATE lines (which I think could simply follow a standard full restore).
It would not be a compromise to have to refer to an existing "backup" as the context for the upload of modifications. Maybe for heavy-mutli-user situations it would be safest to provide simultaneous backup-and-download CSV so nothing gets modified by another user in between.