Does SDL2 actually support multiple windows?

It’s possible to call SDL_CreateWindow multiple times and it indeed opens multiple windows, but what then? Specifically, how to swap buffers when multiple windows are present?

// Render window1.
SDL_GL_MakeCurrent(glContext1, window1);
glClear(GL_COLOR_BUFFER_BIT);

// Render window2.
SDL_GL_MakeCurrent(glContext2, window2);
glClear(GL_COLOR_BUFFER_BIT);

// Waits for V-Sync then swaps buffers.
SDL_GL_MakeCurrent(glContext1, window1); // Is context switch needed?
SDL_GL_SwapWindow(window1); 

// Does this swap buffers immediately or wait for the next V-Sync?
// If it swaps buffers immediately, how does it know that it doesn't
// need to wait? Is there a time limit? If it waits for V-Sybc every
// time, how to swap buffers when multiple windows are present?
SDL_GL_MakeCurrent(glContext2, window2); // Is context switch needed?
SDL_GL_SwapWindow(window2); 

In my experience it is necessary only to call SDL_RenderPresent() for each window (i.e. each renderer). Whether or not it waits for vSync depends on whether the SDL_RENDERER_PRESENTVSYNC flag was passed to SDL_CreateRenderer().