You could try to add a private field holding when the last mouse event happened. This way, you can prevent method from executing if not enough time passed since last invocation.
Something like:
using UnityEngine;
using System.Collections;
public class PlayerShot : MonoBehaviour
{
public GameObject Player;
private const float WAIT = 0.1f;
private float lastClik = 0f;
void Update() {
if (Time.time - lastClick > WAIT) {
lastClick = Time.time;
if (Input.GetMouseButtonDown(0))
{
Player.GetComponent<Animator>().SetTrigger("Attack");
}
else if (Input.GetMouseButtonUp(0))
{
Player.GetComponent<Animator>().SetTrigger("Idle");
}
}
}
}
Kindly.