In a small saucepan, bring broth to a simmer.
Heat oil in a large pot. Add onions and rice and cook, stirring, until rice is browned, about 5 minutes. Stir in broth, 1/2 cup at a time, and cook, stirring constantly until almost all the broth is absorbed before adding more, until rice is al dente, about 20 minutes; add hot water if you need more liquid. About 5 minutes before rice is done, add asparagus, butter, and parmesan and cook until asparagus is tender-crisp.
Note: Nutritional analysis is per serving.