Nonsense, multithreaded code can be written as bug free as regular code. No need to fear.
Aside from the trivial while(!transactionSucceeded){retry()} loop, I have trouble proving the correctness of my programs when the number of threads is not small and finite.