exception у вас привязан к insert, а ошибка возникает при вызове процедуры. Т.е вы вызываете процедуру
add_product_4 (INT, TIMESTAMP, VARCHAR, VARCHAR, INT, VARCHAR)
а увас есть только процедура:
add_product_4 (INT, TIMESTAMP, VARCHAR, VARCHAR, INT, INT)
, т.е. до выполнения INSERT даже не доходит.
Соответствие типов нужно учитывать обязательно. Вы можете, конечно, перегрузкой создать процедуру с нужным типом (вроде бы в PostgreSQL перегрузка есть), и там просто бросать нотайс, но это извращение. Если у поданной на вход процедуре переменной некорректный тип, это не исключение, это ошибка в коде, пересмотрите свой подход.