Whisk eggs well. Add a pinch of salt and let rest while preparing fillings.
Mince onion. Rinse and chop pepper and mushrooms. Saute in butter in a medium sized non stick frying pan until softened slightly. Chop ham, add to pan and cook just long enough to heat through. Season with salt and pepper. Remove filling to a plate and keep warm.
Return frying pan to stove top, set to medium-low. Whisk cold water into egg and pour gently into the pan. Allow to cook for about a minute or two. No need to move egg around in the pan. Watch for the edges to begin to set.
Turn oven to broil. Place pan in the oven on the middle rack. If handle is not oven proof, leave the door open and keep the handle pointed out of the oven. Watch carefully and cook until the egg is almost cooked through. Give the pan a shake and remove once the egg is only wiggly in the centre.
Add the fillings to the omelette on one half of the pan. Choose the half closest to the handle for easier flipping. Top with shredded cheese. Return to the oven under the broiler and cook only until the cheese melts, usually less than a minute. Remove from oven and allow to rest for about a minute.
Carefully fold in half by holding the pan handle in your non dominant hand and with a spatula in your dominant hand. With practice you'll be able to slide the omelette out of the pan while folding, directly onto the serving plate.
Garnish with fresh chopped parsley and minced green onion if desired.