Dlaczego tak
Oba polecenia UPDATE wykonują się w ramach transakcji otwartej przez START TRANSACTION. ROLLBACK wycofuje wszystkie zmiany tej transakcji, więc salda wracają do 500 i 100. Wynik 300 i 300 byłby prawdziwy, gdyby skrypt kończył się poleceniem COMMIT. Silnik InnoDB obsługuje transakcje — w MyISAM ROLLBACK nie miałby czego wycofać.