Thought I'd chime in here and mention that best practices kinda depend on what exactly you're goals are and how you have to accomplish them.
Is this a situation where you have three servers around the world, and it's better to have two get the update and let the third go stale when it can't process the query?
Or is this the kind of setup where either all the database need to change or none should get it?
Should you look into a message queue type system? MQs are programmable to tell them to handle different errors different ways, and report to some admin the ones they can't. So, what you are really doing is writing a message queue app of some kind.
To do a simple all or nothing approach, you could just go ahead and issue the inserts to each database, check to see if one fails, and roll back the others. If you're on something like postgresql, you can leave the transaction uncommitted on all three, then if one fails, roll them all back and have transactional integrity.
Clustering might be a better answer here.