Yes, as soon as an absolute upper bound is known the algorithm has constant complexity.
Algorithmic complexity is only concerned how the algorithm scales for arbitrarily large input sizes: how long does it take for ten, thousand, and a trillion elements? Since your algorithm is only defined up to a certain maximum size, this scaling is not very relevant.
When analysing Big-O complexity, this maximum-input argument is often very convenient. For example, we generally assume that multiplication and addition are O(1) operations. But that only holds for fixed-width data types which are often sufficient in practice. It does not hold for arbitrary-precision/bignum operations, where addition would have O(log n) complexity (or O(n) to the number of bits).
It is not always OK to entirely ignore Big-O even when there's a maximum size. If the algorithm shows significant scaling properties within the domain where it's defined, that should be subject to analysis. For example, O(exp n) algorithms might be infeasible for anything but single-digit input sizes, so an upper limit in the thousands is completely irrelevant as it will never be reached. Similarly, the argument that all programs are O(1) because real computers have finite memory and are therefore bounded is specious: you're usually going to feel the effects of Big-O long before you hit that limit.