How would you find the row you wanted to delete as a manual tester? What is it that you see which says, this is the row I want to delete? For example, if I added the fourth row and it is the set { "Agent 2", "Italy", "White" }, the 'Delete' link is on the same row and I can find the table then I might do:
WebElement table = driver.findElement(by1); // by1 is a By locator which finds the table
String xpath1 = "tbody/tr/td[text()='Agent 2']/../td[text()='Italy']/../td[text()='White']/../a[text()='Delete']";
This xpath will basically find the row which has all three strings on it. I'm using exact match for everything but you can change that to contains(text(),'Agent 2'), etc. if that matters. If having all three strings on the same row isn't enough and the order matters, i.e. you might have one row with { "Agent 2", "Italy", "White" } and another with { "White", "Agent 2", "Italy" } then you change the above xpath by adding position() indicates, e.g.
String xpath1 = "tbody/tr/td[text()='Agent 2' and position() = 1]/../td[text()='Italy' and position() = 2]/../td[text()='White' and position() = 3]/../a[text()='Delete']";
Darrell