We need a remove method on StatementList in several places in Wikibase Repository.
Item has a setStatements method but there is no guarantee that every other entity class will have such a method. Entity doesn't provide such a method either (and we are perhaps dropping that class anyways).
StatementListProvider does only have a method to obtain a StatementList, not to set one (which makes sense as it is a provider).
Therefore, we have to add a removeStatement method to StatementList to be able not only to add, but also to remove statements from such a list.
There is a patch on Github already: https://github.com/wmde/WikibaseDataModel/pull/470
The need for such a method can be seen well in https://gerrit.wikimedia.org/r/#/c/204511/, where there are ugly workarounds, just to remove a statement. These hacks include using Item::setStatements or Property::setStatements after some instanceof Item/Property checks. This indicates a wrong coding style and can easily be solved by adding a removeStatement method to StatementList.