Der Treiber muss die Abfrage in dieser endgültigen Form an Postgresql übergeben:
update portfolios p
set votes = s.votes
from unnest(array[(5, 1), (15, 1), (25, 2)]) s (votes int, id int)
where p.id = s.id
Übergeben Sie also diese Abfrage an den Treiber:
update portfolios p
set votes = s.votes
from unnest($1) s (votes int, id int)
where p.id = s.id
mit einem entsprechenden Array als Parameter.
Beachten Sie, dass Sie anfällig für SQL-Injection sind, wenn Sie es selbst in Strings einbauen, anstatt es dem Treiber zu überlassen.