Виявилося, що можливо узнати це і безпосередньо через SQL запит, слід лише використати службове слово RETURNING.
Для таблиці, створеної наступною командою:
CREATE TABLE test_table ( id serial NOT NULL, "name" character varying NOT NULL, PRIMARY KEY (id) );
Операція INSERT з поверненням ID виглядатиме так:
INSERT INTO test_table (name) VALUES ('test name') RETURNING id;
Якщо у нас є більше одного рядка з name = 'test name', наступна операція UPDATE поверне список змінених ID:
UPDATE test_table SET name = 'TEST name' WHERE name = 'test name' RETURNING id;