Every Object in Java has an associated lock. If you want a new lock, you can create a new Object. The referenced question doesn't make it clear why you're trying to increase the number of locks, or what you mean by that. Maybe you can provide more details.
Update following changed question
I think I see what you're aiming at: effectively, you want a synchronized block on the int that doSomething is getting passed. There are two relatively simple ways to do what you're after:
a) Is it really important that several threads be able to call doSomething simultaneously with different ints? If not, you could just place both calls within a synchronized(this)
b) ints are not Objects. If you change doSomething to take an Integer and also change whatever's calling doSomething (and whatever's calling that, and so forth) to also use Integers, you can synchronize on the Integer. It's important here to make sure that every caller will be using the same Integer object - it's possible to have multiple Integers that have the same int value, but synchronizing on different Integers won't provide the protection you're looking for.