Hi @PL13 thanks for reaching out with this!
As you noted, the best approach to implementing custom validation logic will likely involve utilizing custom JS queries before actually triggering the related database query.
Regarding the composite primary key being used in bulk updates: as you've observed, the GUI for SQL bulk updates only allows the use of a single column primary key. However, you could consider executing arbitrary SQL that utilizes a compound primary key via out editor; my colleague, Justin, outlines this approach in this related community post – do you think that that would suit your use case?