First of all, plenty of systems have the ability to roll back transactions. Exchanges can and have declared some transactions void if they were the result of market manipulation or extreme volatility, such as during the famous flash crash.
Second, with a blockchain you need the other party to sign the reverse transaction. Either you have to trust that party, or a central and neutral authority with some sort of main key, to produce the inverse transaction. Once you have this, you have introduced a ton of trust and/or centralization into the system, in which case you could have just used a regular SQL database anyways.
It's the kind of thing that I would put in a "false things programmers believe about transactions" article if I ever wrote one.
Due to late fees, overdrafts, interest, frauds, various legislation and protections, cooling off periods, time zones, comm lags, etc etc etc, it's dangerously false to believe that transactions work in some kind of immutable real world time stamped process.
I know these days there's a network of banks that do much faster transfers between them, but that's because they trust each other to reverse charges as needed.