A confusing word. Most people use it incorrectly.
A bottleneck is any aspect of a system that is slower than another aspect of the same system limmiting the final product. Such as the neck of a bottle limitting the flow of a fluid trough it. We can call something a bottle neck whether it be a hard limiter (such as a flow regulator in a pump system), or a soft limit such as a computer.
Most people use the term to describe a system that runs slow due to some magical mismatch of hardware. In reality every system has a bottleneck somewhere. No CPU/GPU/hdd/etc. are perfectly missmatched, the final performance of your system will be hindered by one component out pacing the other. However a computer is not a hard limitted system, it is a non linear system. Increasing one aspect will always grant "some" gains, even if another aspect is far slower but the level of improvement will be less and less and less as the ratios become more and more out of whack.
A more correct question would be "What is the curent primary bottleneck of my system?"
In which case the answer would be your GPU. Hense, if your specs are correct, your money is probably best spent on the gpu upgrade. In your curernt system the GPU is the bottelneck, with a new GPU your CPU would be the new bottelneck (generally). But if you are asking will your performance increase, of course. And if you are asking which will grant more gains. The gpu upgrade would give you the best performance per dollar than the cpu upgrade.. Obviosuly upgradign both would give the most improvement.
People need to understand it is the level of bottlenecking a component provides, and limitting this factor, that is important. The answer is always surely yes if the question is "Does my system have a bottleneck?" One component will ALWAYS hold another back to some degree, however small.