If you have more than one JVM instance running this process, you need to implement the locking mechanism in the database (it shouldn't be too difficult, but it might require to choose the correct isolation level for your transaction).
If there's just one JVM, simply make all the necessary methods of your singleton object's class
synchronized. The synchronization is done on the object, not on the method, so if there are several synchronized methods of the same object, only one of them can be active at any given time - all other threads will wait.
Edit: and welcome to the Ranch!