Есть ли какая-либо функция libpq для обнаружения состояния заполнения диска (на устройстве не осталось места), когда PQexec терпит неудачу для оператора INSERT?





Для этого вам не нужна специальная функция, это часть сообщения об ошибке, которое вы получаете.
SQLSTATE для «диск заполнен» — 53100 (см. документация).
Если у вас есть PGresult *res, вы можете получить SQLSTATE с помощью
PQresultErrorField(res, PG_DIAG_SQLSTATE);
Подробнее см. в документация по libpq.