Совместное использование соединений между множеством потоков обычно осуществляется с помощью пула соединений. Каждый поток может запросить соединение из пула, использовать его для своих целей (одна или несколько транзакций, зафиксировано или откатано) и передать его обратно в пул после завершения задачи.
Это то, что серверы приложений предлагают вам. Они также позаботятся о сделках, т.е. е. когда метод, который запросил транзакцию, завершается нормально, изменения фиксируются, если выдается исключение, транзакция базы данных откатывается.
Я предлагаю вам взглянуть на Java EE 5 или 6 - он очень прост в использовании и может даже использоваться во встроенных системах. Для легкого начала взгляните на Netbeans и сервер приложений Glassfish. Однако общие понятия применимы ко всем серверам приложений.
Что касается InnoDB, у него не будет проблем с обработкой большого количества транзакций. Под контролем сервера приложений вы можете сконцентрироваться на бизнес-логике и не беспокоиться о наполовину написанных обновлениях или о том, что кто-то увидит обновления / вставки до того, как будет совершена транзакция, с которой они происходят.
InnoDB использует MVCC (управление несколькими версиями параллелизма), эффективно представляя каждой транзакции моментальный снимок всей базы данных на момент ее запуска. Вы можете прочитать больше о MVCC здесь в связанном вопросе: Вопрос 812512