The Send Adapter commits changes per message and per object. This means commits cannot span messages. Within a message, changes to an object are all committed together. To ensure changes are all or nothing, therefore, the strategy you need to use is one message per object.