The JVM is a just a specification that:
...omits implementation details that are not essential to ensure interoperability: the memory layout of run-time data areas, the garbage-collection algorithm used, and any internal optimization of the Java virtual machine instructions (their translation into machine code)
It would be another implementation detail how it uses physical hardware. I could write my own JVM implementation that uses just one CPU just fine or I can write one that uses more than one.
Pedantry aside, I would imagine that all commercial JVMs see multiple CPUs in exactly the same way as multiple cores because they generally run on top of Operating Systems which also abstract away hardware details about CPUs, and cores (including virtual cores) and present them all as CPUs to software running on top of that OS.