1. Preheat the oven to 350 degrees F and center an oven rack. Line a 12-cup muffin tin with your favorite liners and lightly grease with cooking spray.
2. Melt the 1 tablespoon of soft butter in a medium skillet over medium-high heat. Add the onions once the butter starts to foam and cook, stirring frequently, until golden brown, about 4 minutes.
3. Combine the flour, cornmeal, sugar, baking powder, salt, baking soda and pepper in a large bowl.
4. Whisk together the milk, sour cream and eggs in a separate small bowl. Fold in the egg mixture along with the browned onions, the cheeses, ham and thyme into the dry ingredients until just combined (don't fret if there are lumps, this means your batter isn't over-mixed).
5. Fill each liner about 3/4 full. Sprinkle with thyme leaves and Parmesan, if desired, and bake 10 minutes. Brush each muffin lightly with butter, sprinkle with a little salt and rotate the pan. Continue to bake until the muffins are golden and a toothpick inserted in the center comes out clean, 8 to 10 minutes longer. Let the muffins rest in the hot muffin pan 3 minutes and serve warm, or cool to room temperature on a rack.