Semver, core_version_requirement and update hooks
I wouldn't use semantic versioning just for the sake of using it, especially since using it on drupal.org forces you to increase the major version number. Changing major version number means the new version is not compatible with the previous one, which also means the codebase diverges significantly (or it will diverge significantly).

core_version_requirement key require Drupal 8.7.7, while semantic versioning requires Drupal 8.8.3, as previous Drupal versions don't handle them, which means that if you are semantic versioning, you should also use core_version_requirement in the .info.yml file.
Using core_version_requirement doesn't change how semantic versioning works, and using semantic versioning doesn't change how core_version_requirement works, except that with semantic versioning I would set core_version_requirement to ^8.8.3 || ^9, at least.