A sensor can make a beautiful frame and still be the wrong part if you cannot get that frame off the chip in time. Frame rate, bit depth, interface, and the number of MIPI lanes are one budget. People read the FPS line and skip the rest. The cable does not skip it.

In one sentence. FPS on the datasheet is a best-case exit rate for a given format, bit depth, and interface. Change any one of those and the number moves.
The arithmetic nobody prints twice
Width times height times frames per second times bits per pixel is a lot of bits. Divide by the useful rate of the interface. If the answer does not fit, you do not have that FPS. You have a crop, a skip, a lower bit depth, or a lie.
12 MP at 60 fps in 12-bit RAW is a different animal from 12 MP at 30 fps in 10-bit, and both are different from YUV422 after an on-chip ISP. The library's Max Frame Rate and Interfaces and Output Format belong in the same glance.
The highway test
A three-lane road at rush hour does not become a six-lane road because the brochure said "up to 120." You either drop cars (resolution), slow the clock (FPS), or pack them tighter (fewer bits). Hosts have the same manners. A Raspberry Pi CSI connector is not a Jetson CSI connector is not a PCIe frame grabber.
How to use the library
On the sensor page, read interface and output format before you fall in love with FPS. Then ask what the host can ingest. A part that can do 120 fps in a 720p window is not a 12 MP 120 fps camera. It is a 12 MP camera that can window.