The source was Mite Kremnitz, Rumänische Märchen: Mogarzea und sein Sohn.
His name was Mogarzea, he was an emperor's son, and he was on his way to Sweet Milk Lake to marry one of the three fairies there when evil elves had stolen his soul.
Next evening, he dropped the flute and stepped on it, and lamented it, telling the elves that it was made from the heart of a cherry tree.
At court, the boy asked Mogarzea how to marry a fairy of Sweet Milk Lake.
On the third day, he plucked the rose from her hair and did not give it back, however she pled; so she married him at the emperor's court.