Well.. It's like 25% accurate, and you hit the part you were most worried about. But you have been seriously misled about monads in the past.
There is no magic in monads. At the level of runtime operations, they're just a couple of functions.
The magic taking place in the compiler is type inference guiding the selection of the right pair of functions during compilation. Without that, you have to explicitly use the correct functions. It's much easier to offload that bookkeeping to a computer than it is to do it yourself.