So when do bottlenecks occur?
When one device has to wait a "significant" amount of time on another device. "Significant" in this case means milliseconds.
The main bottleneck in a system is the hard drive. Everything
waits on the hard drive. But you clearly mean the CPU and GPU. If the CPU cannot keep the GPU fed, the CPU is the bottleneck. Likewise, if the CPU has to wait for for the GPU to finish rendering the last frame, the GPU is the bottleneck.
It's difficult to build a "balanced" system because games have different requirements.