I ended up writing a small function and macro for if I end up wanting this for real
(macroexpand-1 '(expand-named-parameters-compile-time
"INSERT INTO PERSON (id, name) VALUES (:id, :name)
ON CONFLICT (id)
DO
UPDATE
SET name = :name
RETURNING id, name"
{:name (:person/name person)
:id (:person/id person)}))
=>
(clojure.core/let
[G__4732 (:person/name person) G__4733 (:person/id person)]
["INSERT INTO PERSON (id, name) VALUES (?, ?)
ON CONFLICT (id)
DO
UPDATE
SET name = ?
RETURNING id, name"
G__4733
G__4732
G__4732])
1