I thought slightly cheating on the semantics of PUT is the best option, but I'm happy with a query param ala ``?overwrite=true`` as well.

One option that might also work is supporting ``PUT /routes/{client-generated-id}`` - that would make Set() and Add() somewhat idiosyncratic (server-generated id vs client-generated id), but users who prefer the Set() can then do what they want wrt to ids.