Do CMSIS libraries also handle GPIO registers?
No. GPIO are an external peripheral to the core and as such have no standardized register layout or specification. CMSIS just handles the core and the core peripherals which are standardized by ARM.

Usually (these days) the vendors are providing a hardware abstraction layer specific to their models.

For the STM32 ST provides the Cube environment. I can't really tell you much about it because we don't use it in our products, so I didn't have time to mess around with it yet.

If you go down the route we did (bare metal, own HAL) you have to have a look at the reference manual of your specific device, the errata sheet to tell you if you need to handle some hardware bugs in software and the data sheet for pin mappings and other electrical data.

The headers for the peripherals are often provided by the compiler company and not by the chip manufacturer (or at least you don't notice it because they come packed with the compiler). Usually the headers are closely following the naming scheme of the reference manual. Some use a structure for one peripheral others are defining each register as an own. The bits are also usually predefined, so you can write readable code without shifting bits around like crazy.