Как уже говорилось, у вас есть несколько опций, я бы посоветовал вам либо изменить возвращаемое значение на bool и вернуть false, чтобы указать, что оно не обновлено, либо выдать ArgumentOutOfRangeException.
Преимущество возврата false, очевидно, заключается в том, что исключение не выдается, однако потребитель должен будет подтвердить, что обновление произошло, или он будет сбит с толку, когда получит доступ к значению и обнаружит, что оно не обновлено.
Если вы используете метод исключения, вы можете добавить xml-комментарий к методу, чтобы указать, что исключение может быть выдано, если число ноль или ниже. Это будет отображаться в всплывающей подсказке и в браузере объектов в Visual Studio, чтобы потребитель знал, что это может произойти.
/// <summary>
/// Updates the value in the cache for the supplied key.
/// </summary>
/// <param name="key">The key in the cache.</param>
/// <param name="number">The the number to store.</param>
/// <exception cref="ArgumentOutOfRangeException">Thrown if number is less than 1.</exception>
public void Update(string key, Data value, int number)