Vous n'avez pas besoin d'un curseur pour cela, vous n'avez pas besoin de plpgsql, vous n'avez même pas besoin d'un CTE de modification des données ce qui vous permettrait de le faire dans une seule instruction SQL.
Exécutez simplement deux INSERT
déclarations . Mettez-les dans une transaction si vous voulez vous assurer que tout ou rien est appliqué :
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;