Acontece que eu estava olhando para o problema de uma maneira bastante terrível. Em vez de encontrar o exato reversão par, acabei de fazer um SUM com um GROUP BY, então apenas os valores que eu me importava em manter permaneceram.
O resultado final é que as transações acabarão distintas - especialmente se, como no meu caso, a tabela de transações real for na verdade um valor de data e hora em vez de data.
SELECT SUM(QTY) AS newQTY, DATE, FUEL_TYPE
FROM fuel_transactions
GROUP BY DATE, FUEL_TYPE
A única vez que isso não produzirá os valores que você realmente deseja é se você precisar manter os id's das transações ou se tiver uma situação em que várias transações ocorrem no exato mesmo tempo.