Вы перекрываете фон другим при наведении курсора. Вместо этого вам нужно добавить еще один слой поверх исходного фона.
пример, где вы добавляете фоновое изображение поверх цвета фона, где фоновое изображение также является цветом:
tr:hover {
background-image: linear-gradient(rgba(0, 0, 0, 0.1),rgba(0, 0, 0, 0.1));
}
.red {
background-color: red;
}
.gray {
background-color: gray;
}
<table>
<tbody>
<tr>
<td>aaaa</td>
<td>bbbb</td>
<td>cccc</td>
</tr>
<tr class="gray">
<td>aaaa</td>
<td>bbbb</td>
<td>cccc</td>
</tr>
<tr class="red">
<td>aaaa</td>
<td>bbbb</td>
<td>cccc</td>
</tr>
</tbody>
</table>