It's something to do with output - SELECT obviously returns something, whereas INSERT doesn't - but that's not strictly true. It returns success or failure?
SELECT returns a result set (table), Insert doesn't
INSERT INTO tab VALUES (100) RETURNING *;
Unless you use RETURNING...
How do I tell psql/PL/pgSQL that I want to suppress the output for the test?
By doing exactly what the error message told you. Use PERFORM instead of SELECT...on the exact query whose output you wish to ignore, not an indirect caller.