Warm the oil and butter in a medium pan over a medium heat then add the onion. Cook for around 5 minutes until the onion softens, but make sure it doesn't brown (reduce heat or add a little more butter, if needed).
Add the rice and cook for a minute or two so that it becomes glossy from the oil/butter. Add the wine and let it bubble away until it is largely absorbed.
Then add just enough stock to cover the rice. Keep adding a little more stock (around ½ to 1 cup at a time) as the previous amount is absorbed, stirring now and then so that it doesn't stick. Typically, it doesn't need stirred much to start with but more towards the end. Add the saffron with the last of the stock - if you are using powder, you can just sprinkle it in the pan as you add the stock, if using stamens, add some to a little warm stock or warm water and let it sit for around 5 minutes before using so that it 'blooms', releasing the color.
Once the rice is cooked to just al dente and the stock has been absorbed, remove form the heat. Stir through the parmesan, and butter so that both are well distributed and melt into the risotto. Adjust seasoning to taste, if needed and serve.
Notes
Note to make this a traditional risotto alla Milanese do not use white wine and use beef stock instead of light stock. Also, add 1 ½oz/40g beef bone marrow after the onion has softened.