Старые / новые предназначены только для триггеров, их нельзя использовать в сохраненных процессах.Кроме того, вы не можете смешивать обновление и удаление.
Сначала необходимо обновить баланс клиента (если вы не сделаете это в триггере), используя традиционный оператор обновления.Затем вы удаляете счет.
CREATE PROCEDURE invoiceDelete(IN temp_code CHAR(4))
BEGIN
UPDATE customer INNER JOIN invoice ON customer.CUS_CODE = invoice.CUS_CODE
SET customer.CUS_BALANCE = customer.CUS_BALANCE + invoice.INV_TOTAL
WHERE invoice.INV_NUMBER = temp_code;
DELETE FROM invoice WHERE INV_NUMBER = temp_code;
END