Answer to your question is - Yes! it is necessary to have an edit icon but the way you present it will make it usable and help in keeping the UI clean.
- Repetition of elements is not a good UX - it makes the UI look crowded, unless the element is not too bold/big.
- Displaying action elements on mouse-over is a good option, but you really have to think about the target audience of your site. If your application is meant for all generations you might want to avoid mouse-over actions.
- Think of scalability; what if the client asks you to add more action icons for the row?
The pattern of showing three vertical dots is becoming common these days for row level actions - it is also very common across devices such as mobiles, tablets and PCs.
Here's an example from Google that solves almost all concerns:

Actions:
