DELETE удаляет строки по одной, пишет в WAL, поддерживает WHERE, вызывает триггеры по строкам. TRUNCATE удаляет все строки таблицы сразу, сбрасывает последовательности (RESTART IDENTITY), не вызывает row-level триггеры. Оба можно откатить в транзакции.