Non hai bisogno di un cursore per questo, non hai bisogno di plpgsql, non hai nemmeno bisogno di un CTE per la modifica dei dati che ti permetterebbe di farlo in una singola istruzione SQL.
Basta eseguire due semplici INSERT
dichiarazioni . Inseriscili in una transazione se vuoi assicurarti che tutto o niente sia applicato:
BEGIN;
INSERT INTO B (col1, col2)
SELECT col1, col2
FROM A
WHERE col_cond = 'something';
INSERT INTO C (col1, col2)
SELECT col1, col2
FROM A
WHERE col_cond IS DISTINCT FROM 'something';
COMMIT;