Thanks for replying dear sir. But I am absolutely sure that what I have is in fact a piezo buzzer. I recently bought it from a trusted electronics store they even tested it by running voltage through it. I even tested it myself at home by running 6 volts through it. Is it more convenient if use a piezo speaker instead if a piezo buzzer does not go well with PWM?
A buzzer (a device that has a built-in sound generator) will make sound when you apply DC voltage. A speaker/transducer is passive (no active electronics inside) and reproduces the AC audio fed-into it, so you can change the pitch/frequency.
Some people, including some sellers are "casual" with the definitions so sometimes you have to carefully read the manufacturer's specs. (Or if you have it in your hand, you can connect it to DC to see if it makes a tone.)
A buzzer is not appropriate for PWM.
If you are driving a buzzer from an I/O pin check it's current requirements. Because of the built-in electronics it will likely draw more than the 40mA maximum allowed from the Arduino, so you might need a driver circuit.