No, that's not how hashCode() works. The returned value does not have to be unique. The exact contract is spelled out in the documentation.
Also,
supposedly the Object.hashCode() method is a unique id per object
is not true. To quote the documentation:
As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects.