Does the situation when multiple threads/users try to delete the same record naturally arise in the Benchmark Factory implementation of TPC-C? I.e., is the implementation constructed to test this scenario?
Yes the situation can happen inside the TPC-C, especially when running outside the specifications of the TPC-C, in particular the minimum scale factor per virtual users. Per spec. you are suppose to have one scale factor for every 10 virtual users. A scale factor in the TPC-C represent the number of warehouses in the system with each warehouse getting 10 districts. Each virtual user is assigned a district. Now BMF allows you to set the scale factor and virtual users to the number you need to best generate the workload you want and will automatically span the virtual users across the warehouse/districts. When your scale factory is less than that per spec multiple virtual users will be assigned the same district and that is when the behavior you are seeing occurs.