Both are correct, both are different
The tbn is a function of the encoder creating the stream. So for a 10 fps stream, it can be 90000, which implies 90000 ticks a second, giving you 9000 ticks per frame. It can also simply be 10, which implies 1 tick per frame (for the same 10 fps stream). 90000 is commonly used at streaming level (ts streaming comes to mind) but encoders are not bound by this. This (tbn) is something decoders will use, not the application systems which use container data.
If you have a container, you should use the container time base and time stamps because it is normalized across all streams in the container. You will use parameters like tbn only inside a codec decoder.