Very much so, with the small difference that the VCS features the `WSYNC` strobe to sync the CPU with the start of the scan-line, but here we don't have even this.
(Having said that, for something more complex, like an animated game display, you'd probably approach this very similarly: do the business/game logic in VBLANK, have a timer set for the start of the visible picture and run your display kernel. Now you can only hope that you wouldn't be off more than half a scan-line… That is, more realistically, you might do this only every 2nd or 3rd frame.)