So what you are asking is correct assumption. You do not need to make it thread safe if you can guarantee that it is only used this way. You can't pass a half constructed object around in java, so the "Constructor might not be finished" is not possible.
So if you do
new Thread(new Runnable() {
public void run() {
final MyClass instance = new MyClass(10);
new Thread(new Runnable() {
public void run() {
instance.put("one", "one");
....
}
}).start();
}
}).start();
You are fine :) This is what you described, created by Thread1 but only used by Thread2. There is no way for the thread to collide with itself.
Thread-Safe is a different definition where the composed entity may safely be interacted with by multiple threads. In the case you described, that scenario does not happen, since you essentially have a thread that constructs and another that manipulates.