I think that's not true. If you have e. g. 4 cores, and you start Puma with 4 workers (i. e. processes) it will utilize all cores.
I guess you're mixing up processes with Ruby threads.
You normally start as many Puma processes as your CPU/Core count with probably additional threads per workers.