If the FI is running SDK extensions they will have an SDK version for that service, but every service can have different SDK versions. So a given FI can have any number of service running in their environment. The SDK version for a particular service is dependent on requirements.txt and this can be upgraded by using q2 upgrade.
The FI does have a few services that are locked to versions. Normal development does not require knowing this in general, but working with some new features may require new versions of these services. The most common of these services are UUX or the frontend service and HQ which is the backend service.
Like the SDK, all python packages are service level. These are all controlled by the requirements.txt file. It is recommended to use q2 add_dependency for third party packages, and q2 upgrade for first party q2 packages.
Tecton and any other frontend package is an extension level package and is controlled either in extension.py or packages.json