I know a bank in Sweden that does _not_ do this and apparently runs various batch jobs at something like 1-3 am. So, one night I made a transaction to it and it looked just fine in the app, then it was mysteriously gone in the morning! On the receiving side; my cash had still been withdrawn! I called the support and we eventually realized that no, you shouldn't do transfers at 2 am on a Saturday because it's likely to fail and then we have to wait for the weekend to be over for them to reappear. I was like... "Alright, thanks. But maybe you should close your app these hours..."
The software engineer within me shudders at the thought of running batch jobs in production while there are ongoing transactions, and where conflicts can and are fully expected to happen.