а по поводу экзиста перед запросом, мне кажется, тут по сути вопрос-то в том, насколько часто будет находиться, если почти всегда, то экзист не нужен, если нечасто, то нужен
SELECT count(*) FROM sometable; потребует затрат в количестве, пропорциональном размеру таблицы: Postgres Pro придётся полностью просканировать либо всю таблицу, либо один из индексов, включающий все её строки.